The primary objective of a MRP system is to generate a schedule of net requirements and planned order releases for the component parts and materials that are needed to satisfy the end-product demand represented by a master production schedule. Prior systems, such as Rembert, U.S. Pat. No. 5,101,352, are of limited capability for a make-to-order manufacturer. Moreover, most MRP systems require an extensive time period to perform MRP time phased netting of item demands and supply to thereby generate MRP action messages ("MRP regeneration").
One factor that contributes to slow MRP regeneration times in prior systems is the calculation of item low level codes. Most prior art MRP systems store low level codes in data base structures for bills of materials. Because an item can be referenced in different bills of materials, an items low level code may be different for different bills of materials. For such prior art systems, each MRP run necessitates that each bill of material for each item which is subject to the MRP run be exploded and the different low level codes for each item reconciled. This is usually done by setting the low level code for each item, as represented in multiple bills of material, to the greatest low level code of the item for all bills of material for the run. For example, suppose there are three bills of material records for items widget-1, widget-2 and widget-3. A component of each widget may be a valve, but because the different bills of material may have different hierarchies, the low level codes for the valve may be 5 in the widget-1 bill of material, 22 in the widget-2 bill of material and 76 in the widget-3 bill of material.
For MRP regeneration, the valve low level code for each bill of material should be set to its greatest value, or 76. Moreover, suppose further that the valve itself comprised of subcomponents, such as, a valve manifold and a valve seal, which would have low level codes of 6, 23 and 77 for widget-1, widget-2 and widget-3, respectively. The low level codes of these subcomponents would have to be reset to 77 for purposes of the MRP run. It can be readily appreciated for an MRP run that processes many items, and when items may have bills of materials that are hundreds of levels deep and hundreds of levels wide, a considerable amount of processing time can be spent exploding bills of material and calculating and possibly resetting low level codes. This contributes to undesirably slow MRP regeneration speed.